msg_tool\scripts\entis_gls\csx/
base.rs

1use crate::scripts::base::*;
2use crate::types::*;
3use anyhow::Result;
4use std::collections::HashMap;
5use std::io::Write;
6
7pub trait ECSImage: std::fmt::Debug {
8    fn disasm<'a>(&self, writer: Box<dyn Write + 'a>) -> Result<()>;
9    fn export(&self) -> Result<Vec<Message>>;
10    fn export_multi(&self) -> Result<HashMap<String, Vec<Message>>>;
11    fn export_all(&self) -> Result<Vec<String>>;
12    fn import<'a>(
13        &self,
14        messages: Vec<Message>,
15        file: Box<dyn WriteSeek + 'a>,
16        replacement: Option<&'a ReplacementTable>,
17    ) -> Result<()>;
18    fn import_multi<'a>(
19        &self,
20        messages: HashMap<String, Vec<Message>>,
21        file: Box<dyn WriteSeek + 'a>,
22        replacement: Option<&'a ReplacementTable>,
23    ) -> Result<()>;
24    fn import_all<'a>(&self, messages: Vec<String>, file: Box<dyn WriteSeek + 'a>) -> Result<()>;
25}